import { defineStore } from 'pinia';

export const useAuthStore = defineStore('auth', {
  state: () => ({
    isLoginModalVisible: false,
    userInfo: {},
  }),
  persist: {
    key: 'user-session',  // 自定义存储键名（默认使用 store id）
    storage: sessionStorage,  // 默认 localStorage 
    paths: ['userInfo'],  // 仅持久化 token 字段 
    serializer: {  // 加密配置（可选）
      serialize: JSON.stringify, 
      deserialize: JSON.parse  
    }
  },
  actions: {
    showLoginModal() {
      this.isLoginModalVisible  = true;
    },
    hideLoginModal() {
      this.isLoginModalVisible  = false;
    },
    setUserInfo(userInfo) {
      this.userInfo = userInfo;
    },
    clearUserInfo() {
      this.userInfo = {};
    },
  },
});